Environment Variables

The following environment variables can be set (generally to any value) and will effect some aspect of operation. They should generally only be set when you are experiencing a problem. The performance related variables are more useful when used in a qacli environment for fast commands. You are unlikely to notice any difference when used with the graphical tools or when doing long analysis, viewing or report runs.

For information on how set variables, refer to Setting Environment Variables.

The older format environment variables of the form HELIX_QAC_xxx can continue to be used. If a variable is set using both the older and newer format, then the QAC_xxx variable will take priority. There are no plans to remove the lookup of the older HELIX_QAC_xxx variables, but for new scripts it would be wise to use the newer QAC_xxx format.

QAC_AUTOCCT_DISABLE_ISYSTEM_FIX

When a folder is included with the -isystem flag and also the -I flag, the -I flag is removed. If this causes a problem, the feature can be disabled by setting this environment variable.

QAC_BAZEL_ARGUMENTS

The BAZEL syncrhonization method will run a bazel aquery command which may need extra parameters to function correctly. This environment variable allows those parameters to be specified and used by the synchronization. For example, it could be set to ‑‑config=prod to select the prod configuration.

QAC_BAZEL_INCLUDE_DEPENDENCIES

By default, a BAZEL synchronization will exclude dependencies from synchronization. Set this environment variable to include them when running a synchronization.

QAC_COUT

Enabling this to one of NONE, INFO, ERROR, DEBUG, TRACE sends the logging information at the requested level to the console. This is the same information that is also sent to the logfile.

QAC_DISABLE_APP_COPY

On startup for any Perforce QAC command (such as qacli, qagui etc) the software checks and copies any modified file in the 'app' folder from the installation directory into the local user data location. Setting this variable will disable this checking and copying.

QAC_DISABLE_CCT_CHECKS

Previous version of Perforce QAC did not checking for a valid CCT header. This is now checked so CCTs that previously loaded may now fail to load. Set this variable to disable the CCT checking during loading.

QAC_DISABLE_CONFIG_COPY

On startup for any Perforce QAC command (such as qacli, qagui etc) the software checks and copies any modified file in the 'config' folder from the installation directory into the local user data location. Setting this variable will disable this checking and copying.

QAC_DISABLE_DEPRECATED

By default, qacli will output a message to stderr warning you are using a deprecated qacli command. Where possible, a suggested replacement command will be given.

To disable these messages, set the environment variable QAC_DISABLE_DEPRECATED to any value.

QAC_DISABLE_SAMPLE_COPY

On startup for any Perforce QAC command (such as qacli, qagui etc) the software checks and copies any modified sample projects from the installation directory into the local user data location. Setting this variable will disable this checking and copying.

QAC_DISABLE_SCHEMA_CHECKS

Setting this to any value will disable all schema checking (principally for the ACF, RCF and prqaproject.xml). Any ill-formed XML file will not be detected and incorrect/incomplete data may be read. You should only use this if these exact XML files have previously been checked and are known to be OK.

QAC_DISABLE_VERSION_LOGGING

Setting this to any value will stop Perforce QAC logging to the logfile the exact versions of all components used during analysis.

QAC_ENABLE_BROADCAST

Setting this to any value will ensure the local subnet is searched for licence servers (if no licence server could be found at the configured addresses)

QAC_EXPAND_DRIVES

By default paths are not expanded when files reside on Windows virtual drives. To get the fully expanded path then set the environmental variable QAC_EXPAND_DRIVES to any value.

QAC_FAIL_DEPRECATED

By default, qacli will output a message to stderr warning you are using a deprecated qacli command - but it will complete as normal. qacli can be forced to fail (return code 1, Command Line Parse Failure) when it encounters a deprecated command by setting the environment variable QAC_FAIL_DEPRECATED to any value.

QAC_HB_INTERVAL

Specify the interval in seconds (default is 60) to exchange heartbeats with the license server. If 10 consecutive heartbeats are missed then the connection to the license server is dropped.

QAC_IGNORE_CONFIG_ISSUES

By default, invalid entries in a projects Analysis Configuration File (ACF) will issue an error message and cause the project not to load. To revert to the older behavior of ignoring configuration errors in the ACF, set this environment variable to any value.

QAC_LEGACY_NAMES

By default, more human readable names are used in reports for C++ function parameters and some function names. For example, a parameter “int x” would be reported as “int”. If this environment variable is set to any value, the older format is used and “int x” would become “, ni”.

QAC_LTOKEN

This environment variable is now deprecated and no longer used.

QAC_MEMORY_UPPER

Perforce QAC will detect the percentage of memory in use on the current system. This variable sets the upper threshold for memory usage, above which tasks will not run. Tasks will remain in a pending state until the memory usage falls below QAC_MEMORY_LOWER. This takes float and integer values, e.g. 61.50, with a maximum of 100. By default, no threshold is set.

QAC_MEMORY_LOWER

When memory usage falls below this value, any pending tasks will be analyzed. If this variable is not set, it takes the same value as QAC_MEMORY_UPPER.

QAC_NO_LICENSE_CHECK

Setting this variable to any value will suppress any warning messages when no license servers have been explicitly set.

QAC_PERIODIC_LOGGER_INTERVAL

During analysis the memory and swap usage is logged to the logfile at least every 60 seconds. Setting this variable will override the default logging period. The value should be specified as an unsigned integer i.e. the number of seconds between periodic memory usage logging messages.

QAC_QAINJECT_PROG

Specifies one or more compilers to intercept, along with the appropriate filter to use. This can be used if you want to use something other than the default compilers and filters, and any bindings defined using this will override the default mappings read from a compiler mapping file.

QAC_QAINJECT_GEN_TRACE

Setting this variable to any value will generate an intermediate qainject trace file as well as generating a build spec. This should only be used if directed by development or support.

QAC_QT_DEBUG

By default, all Qt warnings have been quieted when running the various qa* programs from a console. To see these warnings, which are mostly harmless, then set QAC_QT_DEBUG to any value.

QAC_QUIT_QAX_ON_EXIT

Setting this to any value will force qaxd to immediately quit when the qacli command completes. Setting this may increase the time for subsequent qacli commands to complete.

QAC_TEMP_INCLUDE

When using Auto CCT, this environment variable can specify the folder for temporary force included files. Any force include files that are used from this directory will be preserved in the project configuration for subsequent analysis. If the variable is not set, only the default system temporary folder is checked.

QAC_UDL

Specifies the location to a custom User Data Location (UDL). This overrides the default and any user or system defined locations. The UDL must be available in the filesystem and permissions set appropriately so that the user can read/write/delete to that location.

For more information, refer to User Data Location.

QAC_WIN_SDK

This can be set to use a different SDK to analyze against for Windows Visual Studio projects (VS 2017 and above). It should be set to any valid installed SDK, for example:

set QAC_WIN_SDK=10.0.17763.0

You can usually see which SDKs are available by looking in this location; C:\Program Files (x86)\Windows Kits\10\bin

VALIDATE_CREDENTIALS

References to Validate tokens are stored in the User Data Location. The default location is within the UDL: app/validate_credentials. This can be overridden by setting this variable to a pathname of your choice. It is recommended that an absolute pathname is used, for example:

set VALIDATE_CREDENTIALS=C:\QAC\Tokens\Validate.credentials

VALIDATE_TOKEN_KEYSTORE_FILE

By default, Java secure storage is used to store Validate tokens and they are stored in the User Data Location. The default location is within the UDL: app/validate_tokens.jks. This can be overridden by setting this variable to a pathname of your choice. It is recommended that an absolute pathname is used, for example:

set VALIDATE_TOKEN_KEYSTORE_FILE=C:\QAC\Tokens\Validate.tokens.jks